In many computing contexts, a data set may change in a series of versions, wherein each version represents an addition, deletion, and/or modification of one or more data features as compared with related versions. For example, a version-controlled software architecture may be developed through many versions. While developing a new version from a preceding version, a developer may add a new source code feature, remove a source code feature, and/or change a source code feature. Such alterations may be made by the developer directly from the preceding version, and/or may be imported from one or more related versions, and may be arranged into branches representing significant developments of the data set. The versions of such a dynamic data set may therefore resemble a directed graph of relationships; e.g., a first version may descend from a second version, import a data feature from a related third version in a branch, and include a newly created data version that is later copied into a related fourth version.)